package com.cicc.beergamevirtualsimulationsystem.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cicc.beergamevirtualsimulationsystem.common.enums.commonEnum.LevelEnum;
import com.cicc.beergamevirtualsimulationsystem.common.enums.userTypeEnum.RoleType;
import lombok.Data;

/**
 * 角色类型表
 * @author 银角大王
 */
@Data
@TableName("role_type")
public class RoleTypeEntity {
    /**
     * 主键
     */
    @TableId
    private String id;
    /**
     * 级别：0=系统默认  1=用户自定义
     */
    private Integer level;
    /**
     * 房间id
     */
    private String roomId;
    /**
     * 角色类型 0=主持人 1=工厂 2=供应商 3=零售商
     */
    private Integer roleType;
    /**
     * 角色名
     */
    private String roleName;
    /**
     * 角色人数
     */
    private Integer roleNum;
    /**
     * 进价
     */
    private Integer purchasePrice;

    /**
     * 售价
     */
    private Integer sellingPrice;

    /**
     * 期初库存
     */
    private Integer openingInventory;

    /**
     * 库存单价
     */
    private Integer inventoryUnitPrice;

    /**
     * 延期交付单价
     */
    private Integer delayedDeliveryUnitPrice;

    /**
     * 排序字段
     */
    private Integer orderBy;

    /**
     * 为主持人角色设置默认值
     * 前端创建房间时会配置各个角色的基础信息，但是主持人角色不展示。
     * 在创建房间时，需要将主机角色的信息设置好，方便前端展示。
     * @return
     */
    public static RoleTypeEntity masterInfo(String roomId){
        RoleTypeEntity roleTypeEntity = new RoleTypeEntity();
        roleTypeEntity.setLevel(LevelEnum.USER_DEFINED.getCode());
        roleTypeEntity.setRoomId(roomId);
        roleTypeEntity.setRoleType(RoleType.CUSTOMER.getCode());
        roleTypeEntity.setRoleName(RoleType.CUSTOMER.getDesc());
        roleTypeEntity.setRoleNum(1);
        roleTypeEntity.setPurchasePrice(0);
        roleTypeEntity.setSellingPrice(0);
        roleTypeEntity.setOpeningInventory(0);
        roleTypeEntity.setInventoryUnitPrice(0);
        roleTypeEntity.setDelayedDeliveryUnitPrice(0);
        return roleTypeEntity;
    }

}
